package com.tapstitch.scm.common.utils.excel.annotation;

import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.ss.usermodel.CellStyle;

import java.lang.annotation.*;

/**
 * @author laiyz
 * @author liyang
 */
@Target({ElementType.FIELD})
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ExcelColumn {

    String name() default "";
    /** 序号从0开始 */
    int order() default 0;

    /** 是否导出*/
    boolean export() default true;
    /** 单元格格式 */
    ExcelCellStyle[] styles() default {};

    CellValueType valueType() default CellValueType.STRING;

    enum CellValueType {
        STRING,DOUBLE,PICTURE
        ;

    }

    enum ExcelCellStyle{
        /**百分比，如有其他需求请扩展*/
        PERCENT{
            @Override
            public void setStyle(CellStyle cellStyle) {
                cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00%"));
            }
        }
        ;

        public abstract void setStyle(CellStyle cellStyle);

    }
}
